Register Allocation Using Lazy Saves ,

نویسندگان

  • Robert G. Burger
  • Oscar Waddell
  • R. Kent Dybvig
چکیده

This paper presents a fast and eeective linear intraprocedu-ral register allocation strategy that optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of all procedure activations , procedures that actually make no calls (eeective leaf routines) account for over two thirds of all procedure activations. Well-suited for both caller-and callee-save registers , our strategy employs a \lazy" save mechanism that avoids saves for all eeective leaf routines, an \eager" restore mechanism that reduces the eeect of memory latency, and a \greedy" register shuuing algorithm that does a remarkably good job of minimizing the need for temporaries in setting up procedure calls.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Register Allocation Using Lazy

This paper presents a fast and eeective linear intraprocedu-ral register allocation strategy that optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of all procedure activations , procedures that actually make no calls (eeective leaf routines) account for over tw...

متن کامل

Efficient Compilation and Profile-driven Dynamic Recompilation in Scheme

This dissertation presents a fast and effective linear intraprocedural register allocation strategy and an infrastructure for profile-driven dynamic recompilation in Scheme. The register allocation strategy optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines) account for under one third of al...

متن کامل

Generating Efficient Code for Lazy Functional Languages

In this paper we will discuss how a good code generator can be built for (lazy) functional languages. Starting from Concurrent Clean, an experimental lazy functional programming language, code is generated for an intermediate abstract machine: the ABC machine. In this rst pass many well-known optimisation techniques are included. However, we will also present some new ideas in this area, like t...

متن کامل

The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages

Low level optimisations from conventional compiler technology often give very poor results when applied to code from lazy functional languages, mainly because of the completely diierent structure of the code, unknown control ow, etc. A novel approach to compiling laziness is needed. We describe a complete back end for lazy functional languages, which uses various interprocedural optimisations t...

متن کامل

Optimization for the Intel

The Intel R © Itanium R © architecture contains a number of innovative compiler-controllable features designed to exploit instruction level parallelism. New code generation and optimization techniques are critical to the application of these features to improve processor performance. For instance, the Itanium R © architecture provides a compilercontrollable virtual register stack to reduce the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995